﻿@using KPIS.GERP.Models.ICM
@using KPIS.GERP.Models
@model IEnumerable<Dispose>

@{
    ViewBag.Title = "รายการจำหน่ายพัสดุ";
    ViewBag.Remark = "กรณีรายการยังไม่อนุมัติ จะแสดงปุ่มส่งอนุมัติได้ต่อเมื่อ 1).มีรายการที่ต้องการจำหน่าย และ 2).มีรายชื่อคณะกรรมการ";

    var service = new KPIS.GERP.WEB.GIMS.DisposeService.DisposeServiceClient();
}

@using (Html.BeginForm("DeleteAll", "Dispose", FormMethod.Post, new { id = "form" }))
{
    @Html.AntiForgeryToken()
    
    <div class="row-fluid">    
       <p id="message"></p>
        <div class="block-button-menu-above">
            @Html.ButtonAdd(false, "Create")                
            @Html.ButtonDeleteAll()    
        </div>
           
        <div class = "alert-error">@Html.ValidationSummary()</div>

        <div class="row-fluid">
            <div class="table-header span12">
                <div class="span10">
					@ViewBag.Title
                </div>
				@Html.Partial("_ExportButton")
            </div>
        </div>

        <table id="table" class="table table-striped table-bordered table-hover" aria-describedby="table_info">
            <thead>
                <tr>
                    <th class="center" style="width:50px;">
						<!-- Check box delete multiple records column-->
                        <label>
                            <input type="checkbox"/>
                            <span class="lbl"></span>
                        </label>
                    </th>
                    <th>รหัสรายการ</th>
                    <th>วันที่รายการ</th>
                    <th>ประเภทรายการ</th>
                    <th>เรื่อง</th>
                    <th>ประเภทพัสดุ</th>
                    <th>สถานที่ต้นทาง</th>
                    <th>สถานที่ปลายทาง</th>
                    <th>สถานะการจำหน่าย</th>
                    <th>&nbsp;</th>
                    @*<th></th>*@
                </tr>
            </thead>

            <tbody>
                @foreach (var m in Model.OrderByDescending(o=>o.DisposeId))
                {
                    <tr>
                        <td class="center">
                            <span style="display: none;">@m.DisposeId</span>
                            @if (m.DisposeStatus == KPIS.GERP.Models.SYS.RecordStatus.WaitStatus)
                            {
                                <!-- Check box all for delete multiple records -->
                                <label>
                                    <input type="checkbox" name="deleteIds" value="@m.DisposeId" />
                                    <span class="lbl"></span>
                                </label>
                            }
                            else
                            {
                                <label>
                                    <input type="checkbox" name="uncheck" disabled="disabled" />
                                    <span class="lbl"></span>
                                </label>
                            }
                                
                        </td>
                        <td>DS@(m.DisposeId.ToString("00000"))</td>
						<td>@Html.Raw(m.DisposeDate == null ? "-" : Convert.ToDateTime(m.DisposeDate).ToShortDateString()) </td>
                        <td>@m.DisposeType.LookUpName</td>
                        <td>@Html.ActionLink(m.DisposeDesc, "Details", new { id = m.DisposeId })</td>
                        <td>@m.MasResourceType.Name</td>
                        <td>
                            @{
                            if (m.FromIcmWhId != null)
                            {
                                @Html.Raw(m.Warehouse.Name)
                            }
                            else if (m.FromJobsiteId != null)
                            { 
                                @Html.Raw(m.Jobsite.Name)
                            }
                            else if (m.FromOtherPlace != null)
                            { 
                                @Html.Raw(m.FromOtherPlace)
                            }
                            }
                        </td>
                        <td>
                            @{
                            if (m.ToOtherSite != null)
                            {
                                @Html.Raw(m.ToOtherSite)
                            }
                            else if (m.ToOtherPlace != null)
                            { 
                                @Html.Raw(m.ToOtherPlace)
                            }
                            }
                        </td>                          
                         <td style="text-align: center; font-weight:bold">
                            <span class="
                                @{
                            switch (m.DisposeStatus)
                            {
                                case "U": @:text-info
                                                                                               break;
                                case "A": @:text-success
                                                                                               break;
                                case "W": @:text-warning
                                                                                               break;
                                case "P": @:muted 
                                                                                               break;
                                case "J": @:red
                                                                                               break;
                                default:
                                                                                               break;
                            }
                                }">
                                @KPIS.GERP.Models.SYS.RecordStatus.RecordStatusName(m.DisposeStatus)
                                 
                            </span>
                        </td>
                        <td class="td-actions" style="width:100px;">
                                @* ถ้ายังไม่มีการส่งอนุมัติ ก็จะสามารถแก้ไข หรือลบ รายการได้ *@
                                @if (m.DisposeStatus == KPIS.GERP.Models.SYS.RecordStatus.WaitStatus)
                                {
                                    // IsCommittee คือ ตรวจสอบว่ารายการจำหน่ายแต่ละอันมีคณะกรรมการแล้วหรือยัง
                                    // ถ้าเป็น True หมายความว่า มีคณะกรรมการ  แต่ถ้าเป็น False หมายความว่า ยังไม่มีคณะกรรมการ
                                    bool IsCommittee = service.IsCommittee(m.DisposeId);

                                    if (m.MasResourceType.Name == "วัสดุ")
                                    {
                                        var modelOfficeHistoryDtls = service.SelectDisposeOfficeSupplylotHistory(new DisposeOfficeSupplylotHistory
                                        {
                                            RecordStatus = "!" + KPIS.GERP.Models.SYS.RecordStatus.DeletedStatus,
                                            DisposeId = m.DisposeId
                                        }, null).ToList();

                                        // เช็คว่าใบจำหน่ายวัสดุยังมีรายการที่ได้เลือกจำหน่ายไว้หรือไม่
                                        // ถ้ายังมีรายการอยู่ข้างใน ก็จะมีกล่องข้อความเตือนว่า "ถ้าต้องการลบรายการนี้ กรุณาเข้าไปลบรายละเอียดให้หมดก่อน จึงจะสามารถลบได้"
                                        // แต่ถ้าไม่มีก็จะสามารถลบใบรายการจำหน่ายได้เลย
                                        if (modelOfficeHistoryDtls.Count > 0)
                                        {
                                            @Html.ButtonDetails(new { id = m.DisposeId }, true)
                                            @Html.ButtonEdit(new { id = m.DisposeId }, true)
                                            <a href="#" role="button" class="btn btn-danger btn-mini" aria-disabled="true" onclick="DelEvent()">
                                                <i class="icon-trash bigger-120"></i>
                                            </a>
                                    
                                            // เช็คว่ามีคณะกรรมการหรือไม่
                                            if (IsCommittee.Equals(true))
                                            { 
                                                 @Html.ActionLink("  ตัดจำหน่าย", "Approved", new { DisposeId = m.DisposeId }
                                                    , new { @class = "btn btn-small btn-mini btn-yellow button-standard-width icon-plus", role = "button" })
                                            }
                                        }
                                        else
                                        {   
                                            @Html.ButtonDetails(new { id = m.DisposeId }, true)
                                            @Html.ButtonEdit(new { id = m.DisposeId }, true)
                                            @Html.ButtonDelete(new { id = m.DisposeId }, true)
                                        }

                                    }
                                    else if (m.MasResourceType.Name == "ครุภัณฑ์")
                                    {
                                        var modelMMHistoryDtls = service.SelectMovementHistory(new MovementHistory
                                        {
                                            RecordStatus = "!" + KPIS.GERP.Models.SYS.RecordStatus.DeletedStatus,
                                            MoveRefNo = m.DisposeId,
                                            MovementType = "Dispose"
                                        }, null).ToList();

                                        // เช็คว่าใบจำหน่ายครุภัณฑ์ยังมีรายการที่ได้เลือกจำหน่ายไว้หรือไม่
                                        // ถ้ายังมีรายการอยู่ข้างใน ก็จะมีกล่องข้อความเตือนว่า "ถ้าต้องการลบรายการนี้ กรุณาเข้าไปลบรายละเอียดให้หมดก่อน จึงจะสามารถลบได้"
                                        // แต่ถ้าไม่มีก็จะสามารถลบใบรายการจำหน่ายได้เลย
                                        if (modelMMHistoryDtls.Count > 0)
                                        {
                                            @Html.ButtonDetails(new { id = m.DisposeId }, true)
                                            @Html.ButtonEdit(new { id = m.DisposeId }, true)
                                            <a href="#" role="button" class="btn btn-danger btn-mini" aria-disabled="true" onclick="DelEvent()">
                                                <i class="icon-trash bigger-120"></i>
                                            </a>
                                    
                                            // เช็คว่ามีคณะกรรมการหรือไม่
                                            if (IsCommittee.Equals(true))
                                            { 
                                                 @Html.ActionLink("  อนุมัติ", "Approved", new { DisposeId = m.DisposeId }
                                                    , new { @class = "btn btn-small btn-mini btn-yellow button-standard-width icon-plus", role = "button" })
                                            }
                                        }
                                        else
                                        { 
                                            @Html.ButtonDetails(new { id = m.DisposeId }, true)
                                            @Html.ButtonEdit(new { id = m.DisposeId }, true)
                                            @Html.ButtonDelete(new { id = m.DisposeId }, true)
                                        }
                                    }
                                }
                                else
                                {
                                    @Html.ButtonDetails(new { id = m.DisposeId }, true)
                                }       
                            
                        </td>
                    </tr>
                }
            </tbody>
        </table>

        <span style="color:red; font-style:oblique">@ViewBag.Remark</span>  
    </div>
}

@section scripts {
	<script type="text/javascript">

	    function DelEvent() {
	        bootbox.alert("ถ้าต้องการลบรายการนี้ กรุณาเข้าไปลบรายละเอียดให้หมดก่อน จึงจะสามารถลบได้");
	    }

		$(function () {
			var oTable1 = $('#table').dataTable({
				"aoColumns": [
                    { "bSortable": false },
                    null, null, null, null, null, null, null, null,
                    { "bSortable": false }
				]
			});

			$('table th input:checkbox').on('click', function () {
				var that = this;
				$(this).closest('table').find('tr > td:first-child input:checkbox')
				.each(function () {
					this.checked = that.checked;
					$(this).closest('tr').toggleClass('selected');
				});

			});

			$('[data-rel=tooltip]').tooltip();

			$("form").submit(function () {
				var currentForm = this;
				bootbox.confirm(function (result) {
					var _result = result;
					if (result) {
						$.ajax({
							url: '@(Url.Action("DeleteAll", "Dispose"))',
							type: "post",
							dataType: "json",
							data: $(currentForm).serialize(),
							success: function (result) {
							    if (result.success) {
							        $("#message").html(result.message);
									location.reload();
								}
							    else {
							        $("#message").html(result.message);
								}
							}
						});
					}
				})
				return false;
			});
		})

	</script>

}